package com.quectel.business.dms;

import com.quectel.business.common.parking.CarAccessLimitBusiness;
import com.quectel.business.common.parking.ParkingBusiness;
import com.quectel.business.common.parking.ParkingGateCmdBusiness;
import com.quectel.business.common.websocket.WebSocketComponent;
import com.quectel.core.module.ai.service.mongo.MongoAiEventRecordService;
import com.quectel.core.module.car.service.CarService;
import com.quectel.core.module.car.service.mongo.MongoCarAccessRecordService;
import com.quectel.core.module.device.service.DeviceService;
import com.quectel.core.module.entranceguard.service.mongo.MongoPersonAccessRecordService;
import com.quectel.core.module.grid.service.GridBindingService;
import com.quectel.core.module.grid.service.GridEventRecordService;
import com.quectel.core.module.grid.service.GridService;
import com.quectel.core.module.household.service.HouseholdService;
import com.quectel.core.module.parking.service.ParkingChargingService;
import com.quectel.core.module.parking.service.ParkingCurrentCarService;
import com.quectel.core.module.parking.service.ParkingOrderService;
import com.quectel.core.module.parkingcard.service.ParkingCardMemberService;
import com.quectel.core.module.prewarning.service.PreWarningConfigService;
import com.quectel.core.module.prewarning.service.PreWarningRecordService;
import com.quectel.core.module.village.service.VillageBuildingService;
import com.quectel.core.module.village.service.VillageService;
import lombok.Getter;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 在这里编写说明
 *
 * @author: rananxin
 * @email: ryan.ran@quectel.com
 * @date: 2022-10-20 17:34:00
 */
@Component
public class DubboServiceExportFactory {

    @Getter
    @DubboReference
    private MongoAiEventRecordService aiEventRecordService;

    @Getter
    @DubboReference
    private MongoPersonAccessRecordService personAccessRecordService;

    @Getter
    @DubboReference
    private MongoCarAccessRecordService carAccessRecordService;

    @Getter
    @DubboReference
    private HouseholdService householdService;

    @Getter
    @DubboReference
    private DeviceService deviceService;

    @Getter
    @DubboReference
    private PreWarningRecordService preWarningRecordService;

    @Getter
    @DubboReference
    private PreWarningConfigService preWarningConfigService;

    @Getter
    @DubboReference
    private CarService carService;

    @Getter
    @DubboReference
    private VillageService villageService;

    @Getter
    @DubboReference
    private VillageBuildingService villageBuildingService;


    @Getter
    @DubboReference
    private GridEventRecordService gridEventRecordService;

    @Getter
    @DubboReference
    private GridService gridService;

    @Getter
    @DubboReference
    private GridBindingService gridBindingService;

    @Getter
    @DubboReference
    private ParkingOrderService parkingOrderService;

    @Getter
    @DubboReference
    private ParkingCurrentCarService parkingCurrentCarService;

    @Getter
    @DubboReference
    private ParkingCardMemberService parkingCardMemberService;

    @Getter
    @DubboReference
    private ParkingChargingService parkingChargingService;

    @Getter
    @Autowired
    private ParkingGateCmdBusiness parkingGateCmdBusiness;

    @Getter
    @Autowired
    private ParkingBusiness parkingBusiness;

    @Getter
    @Autowired
    private CarAccessLimitBusiness carAccessLimitBusiness;

    @Getter
    @Autowired
    private WebSocketComponent webSocketComponent;
}
